const express = require("express");
const app = express();
const port = 8989;


// 中间件定义以及调用
// app.use((req, res, next) => {
//     console.log(`中间件1`);
//     next();
// });

// app.use((req, res, next) => {
//     console.log(`中间件2`);
//     res.end("hello world");
// });


// json解析
// app.use(express.json());

// // url解析
// app.use(express.urlencoded());

// // form-data解析
// const multer = require('multer');
// const upload = multer();
// app.use(upload.any());

// app.post('/login', (req, res, next) => {
//     // 参数解析
//     console.log(req.body);
//     res.end("hello world");
// });


// app.get('/login/:id/:name', (req, res, next) => {
//     // 参数解析  { id: '123', name: 'zhad' }
//     console.log(req.params);
//     res.end("hello world login");
// });


// http://localhost:8989/login?name=zhandan
// app.get('/login', (req, res, next) => {
//     // 参数解析
//     console.log(req.query);
//     res.end("hello world login");
// });



// https://github.com/xixilive/multer 文件上传处理

// 文件上传  需要安装  npm install multer
// const multer = require('multer');
// const upload = multer({
//     dest: "./upload"
// });

// app.post('/upload', upload.single('file'), (req, res, next) => {
//     console.log(`req.file.buffer`, req.file.buffer);
//     res.end('文件上传成功');
// });


// 上传文件添加后缀名
// const multer = require('multer');
// const path = require('path');
// const storage = multer.diskStorage({
//     destination: (req, file, callback) => {
//         callback(null, "upload/")
//     },
//     filename: (req, file, callback) => {
//         callback(null, Date.now() + path.extname(file.originalname));
//     }
// });
// const upload = multer({
//     storage
// });

// app.post("/upload", upload.single('file'), (req, res, next) => {
//     console.log(req.file.buffer);
//     res.end('上传文件成功');
// });





// const fs = require('fs');
// const morgan = require('morgan');
// const log = fs.createWriteStream("./log/login.log", { flags: 'a+' });

// // 日志记录
// app.use(morgan('combined', {stream: log}));

// app.post('/login', (req, res, next) => {
//     // 参数解析
//     console.log(req.body);
//     res.end("hello world");
// });


// 返回json
// app.post('/login', (req, res, next) => {
//     res.json(["name", "zhangsan"]);
// });


// 路由的使用
// const userRouter = require('./routes/users');
// app.use('/user', userRouter);


// 静态服务器的部署
// http://localhost:8989/123.png
// app.use(express.static('./static'));


// 错误处理
// app.get('/login', (req, res, next) => {
//     console.log('logon test');
//     next(new Error());
// });

// app.use((err, req, res, next) => {
//     console.log(`err`, err);
//     res.status(400).json({"error": "请求失败"});
// });

app.listen(port, () => {
    console.log(`Example app listening at http://localhost:${port}`)
})